// 检查是否需要登录
export const checkNeedLogin = () => {
  if (!isLoggedIn()) {
    uni.showToast({
      title: '请先登录',
      icon: 'none'
    });
    
    setTimeout(() => {
      // 根据上次登录的用户类型决定跳转到哪个登录页
      const userType = uni.getStorageSync('userType') || 'student';
      const loginPage = userType === 'faculty' ? '/pages/login/faculty-login' : '/pages/login/index';
      
      uni.navigateTo({
        url: loginPage
      });
    }, 1500);
    return true;
  }
  return false;
};

// 检查是否已登录
export const isLoggedIn = () => {
  const token = uni.getStorageSync('token');
  const userInfo = uni.getStorageSync('userInfo');
  const isGuest = uni.getStorageSync('isGuest');
  
  // 检查token和用户信息是否都存在
  const hasToken = !!token;
  const hasUserInfo = !!userInfo && !!userInfo.userId;
  
  // 如果isGuest明确设置为false，则认为已登录
  const notGuest = isGuest === false;
  
  const loginState = hasToken && hasUserInfo;
  
  console.log('登录状态检查:');
  console.log('- token存在:', hasToken);
  console.log('- 用户信息存在:', hasUserInfo);
  console.log('- 非游客状态:', notGuest);
  console.log('- 最终登录状态:', loginState);
  
  return loginState;
};

// 获取用户类型
export const getUserType = () => {
  return uni.getStorageSync('userType') || 'student';
};

// 检查是否是教职工
export const isFaculty = () => {
  return getUserType() === 'faculty';
};

// 登出
export function logout() {
  // 清除所有用户相关的存储
  uni.removeStorageSync('token');
  uni.removeStorageSync('userInfo');
  uni.removeStorageSync('userType');
  uni.removeStorageSync('isGuest');
  
  console.log('用户已登出，所有认证数据已清除');
  
  uni.showToast({
    title: '已退出登录',
    icon: 'success'
  })
  
  // 使用reLaunch确保清除页面栈
  setTimeout(() => {
    uni.reLaunch({
      url: '/pages/index/index'
    })
  }, 1500)
}

// 获取用户信息（从本地存储）
export const getUserInfo = () => {
  try {
    const userInfo = uni.getStorageSync('userInfo');
    console.log('获取用户信息:', userInfo);
    return userInfo || null;
  } catch (error) {
    console.error('获取用户信息失败:', error);
    return null;
  }
};

// 设置用户信息
export function setUserInfo(userInfo) {
  uni.setStorageSync('userInfo', userInfo)
} 